package cc.uncarbon.module.appapi.model.request;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

/**
 * 创建订单
 */
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class OrdersDTO {

    @Schema(description = "美容师id")
    private Long staffId;

    @Schema(description = "订单金额", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "订单金额不能为空")
    private BigDecimal price;


    @Schema(description = "实际支付金额", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "实际支付金额不能为空")
    private BigDecimal payMoney;

    @Schema(description = "项目id", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "项目id不能为空")
    private Long itemId;

    @Schema(description = "优惠券id")
    private Long userCouponId;

    //购买类型。1单次项目，2一个疗程
    @Schema(description = "购买类型", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "购买类型不能为空")
    private int buyType;

    @Schema(description = "购买数量", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "购买数量不能为空")
    private int buyNum;

    @Schema(description = "邀请人id")
    private Long inviterId;

    @Schema(description = "店铺id", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "店铺id不能为空")
    private Long storeId;
}
